package com.gg.hj.service;

import com.gg.common.pojo.DFile;
import com.gg.common.pojo.SPay;
import com.gg.common.pojo.SPayDetails;
import com.gg.hj.search.SPaySearch;
import com.gg.hj.view.SPayDetailsView;
import com.gg.hj.view.SPayDetailsVo;
import com.gg.hj.view.SPayView;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface SPayService {
    /**
     * 出库申请登记
     * @return DFileS
     * @throws Exception
     */
    List<DFile> queryWarehouseRegistrationService() throws Exception;

    /**
     * 添加出库申请登记
     * @param sPayView
     */
    void saveWarehouseRegistrationService(SPayView sPayView) throws Exception;
    /**
     * 查询出库申请登记审核
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryWarehouseAuditingService(SPaySearch<SPay> sPaySearch) throws Exception;
    /**
     * 根据父级序号查询出库明细
     * @param parentId
     * @return SPayDetails
     * @throws Exception
     */
    List<SPayDetailsVo> queryWarehouseDetailService(int parentId) throws Exception;

    /**
     * 审核 通过或不通过
     * @param sPay
     * @return int
     */
    int warehouseCheckService(SPay sPay) throws Exception;
    /**
     * 出库申请查询
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryWarehouseService(SPaySearch<SPay> sPaySearch) throws Exception;

    /**
     * 查询审核已通过库存单
     * @param sPaySearch
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryWarehouseCheckTagApproveService(SPaySearch<SPay> sPaySearch) throws Exception;
    /**
     * 根据父级序号查询出库明细 制定出库单
     * @param parentId
     * @return
     * @throws Exception
     */
    List<SPayDetails> queryWarehouseDetailById(int parentId) throws Exception;

    /**
     * 查询出库明细 安全库存数量 调度
     * @param id
     * @return SPayDetailsVo
     * @throws Exception
     */
    SPayDetailsVo queryWarehouseDispatchDetailService(int id) throws Exception;

    /**
     * 修改调度产品 已调度
     * @param sPayView
     * @return  int
     * @throws Exception
     */
    int updateWarehouseDispatchDetailService(SPayView sPayView) throws Exception;

    /**
     * 查询已调度出库单
     * @param sPaySearch
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryWarehouseScheduledService(SPaySearch<SPay> sPaySearch) throws Exception;

    /**
     * 根根据父级序号查询产品 出库单
     * @param id
     * @return SPayDetailsVo
     * @throws Exception
     */
    SPayDetailsView queryOutboundDeliveryOrderService(int id) throws Exception;

    /**
     * 提交出库单 修改
     * @param sPayView
     * @return int
     * @throws Exception
     */
    int updateWarehouseScheduledService(SPayView sPayView) throws Exception;

    /**
     * 查询已登记出库单
     * @param sPaySearch
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryWarehouseRegistrationCheckService(SPaySearch<SPay> sPaySearch) throws Exception;

    /**
     * 出库登记复核
     * @param sPayView
     * @return int
     * @throws Exception
     */
    int updateWarehouseRegistrationCheckService(SPayView sPayView) throws Exception;

    /**
     * 出库查询
     * @param sPaySearch
     * @return SPaySearch
     * @throws Exception
     */
    SPaySearch<SPay> queryOutWarehouseService(SPaySearch<SPay> sPaySearch) throws Exception;
}
